package com.sss.hloster0506;

import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Set;
import java.util.TreeSet;

public class TestDriver {// HashSet, LinkedHashSet, TreeSet的应用

	public static void main(String[] args) {
		test03();
	}

	private static void test03() {
		// 创建一个HashSet对象，存放学生姓名信息
		Set nameSet = new TreeSet();
		// 存入数据元素
		nameSet.add("王云");
		nameSet.add("刘景涛");
		nameSet.add("南天华");
		nameSet.add("雷静");
		// nameSet.add(null);
		nameSet.add("王云");// 增加已有的数据元素
		System.out.println("增强型的for循环遍历取出HashSet集合中的元素:：");
		// 读取元素
		for (Object object : nameSet) {
			System.out.println(object);
		}
		System.out.println("使用迭代器循环遍历取出HashSet集合中的元素：");
		// 获取当前集合对象的迭代器对象
		Iterator it = nameSet.iterator();
		// 迭代器的 hasNext方法判定有么有下一个元素对象；
		// 迭代器的 next方法获取下一个元素对象，并将迭代器迭代位置（指针）向后挪动一个偏移量
		while (it.hasNext()) {
			System.out.println(it.next());
		}
	}

	private static void test02() {
		// 创建一个HashSet对象，存放学生姓名信息
		Set nameSet = new LinkedHashSet();
		// 存入数据元素
		nameSet.add("王云");
		nameSet.add("刘景涛");
		nameSet.add("南天华");
		nameSet.add("雷静");
		nameSet.add(null);
		nameSet.add("王云");// 增加已有的数据元素
		System.out.println("增强型的for循环遍历取出HashSet集合中的元素:：");
		// 读取元素
		for (Object object : nameSet) {
			System.out.println(object);
		}
		System.out.println("使用迭代器循环遍历取出HashSet集合中的元素：");
		// 获取当前集合对象的迭代器对象
		Iterator it = nameSet.iterator();
		// 迭代器的 hasNext方法判定有么有下一个元素对象；
		// 迭代器的 next方法获取下一个元素对象，并将迭代器迭代位置（指针）向后挪动一个偏移量
		while (it.hasNext()) {
			System.out.println(it.next());
		}
	}

	private static void test01() {
		// 创建一个HashSet对象，存放学生姓名信息
		// HashSet元素的存储和读取操作
		// 面向接口的编程：左侧是接口父类，右侧是实现子类的实例对象（多态：父类指代子类）
		Set nameSet = new HashSet();
		// 存入数据元素
		nameSet.add("王云");
		nameSet.add("刘景涛");
		nameSet.add("南天华");
		nameSet.add("雷静");
		nameSet.add(null);
		nameSet.add("王云");// 增加已有的数据元素
		System.out.println("增强型的for循环遍历取出HashSet集合中的元素:：");
		// 读取元素
		for (Object object : nameSet) {
			System.out.println(object);
		}
		System.out.println("使用迭代器循环遍历取出HashSet集合中的元素：");
		// 获取当前集合对象的迭代器对象
		Iterator it = nameSet.iterator();
		// 迭代器的 hasNext方法判定有么有下一个元素对象；
		// 迭代器的 next方法获取下一个元素对象，并将迭代器迭代位置（指针）向后挪动一个偏移量
		while (it.hasNext()) {
			System.out.println(it.next());
		}
	}
}
